

public class Muncitor {
  protected Director d;
  protected String nume;

  protected Muncitor(String nume) {
    this.nume = nume;
  }

  public String getNume() {
    return nume;
  }
  //metoda publica pentru setarea directorului angajatului
  public void setD(Director d)
  {
	  this.d=d;
  }
  public Director getD() {
	return d;
}


public void setNume(String nume) {
	this.nume = nume;
}

// Aceasta clasa poate fi declarata abstracta 
  // (si  in acest  caz clasa Muncitor va fi abstracta)
  public double getSalar() {
    return -1.0;
  }

  public String toString() {
	  if(getD()!=null)//la afisarea datelor muncitorului se testeaza daca el este director sau nu
	  {//daca muncitorul nu este director sa va afisa numele directorului
    return getClass().getName() + "; nume=" + nume
      + "; salar=" + getSalar()+" director="+getD().getNume();
	  }
	    return getClass().getName() + "; nume=" + nume
	      + "; salar=" + getSalar()+" director="+getD();
	  
  }

  // Este inutil de declarat metoda setInfoSalar aici deoarece nu putem 
  // face polimorfism cu aceasta metoda 
}
